package com.oig.sys.auth.service;

import com.oig.sys.auth.dto.RoleDto;
import com.oig.sys.auth.entity.TbUser;
import com.oig.sys.auth.vo.PermissionVo;
import com.oig.sys.auth.vo.ResourceVo;
import com.oig.sys.auth.vo.RoleVo;
import com.oig.sys.auth.vo.SystemVo;

import java.util.List;


/**
 * @author wuxl
 */
public interface ITbUserRoleService {

    /**
     * 查询用户的所有系统
     * @param userId 用户id
     * @return 用户有权限的子应用列表
     */
    List<SystemVo> findAllOkSystemVo(Integer userId);

    List<Integer> findAllOkSystemId(Integer userId);

    /**
     * 查询用户所有的权限
     * @param userId 用户id
     * @return 用户所有的权限
     */
    List<PermissionVo> findAllOkPermissionVo(Integer userId);

    /**
     * 查询用户 子系统有权限的菜单按钮
     * @param userId 用户id
     * @param systemId 子系统id
     * @return 用户有子系统权限的菜单按钮
     */
    List<ResourceVo> findAllOkResourceVo(Integer userId, Integer systemId);



    void delUserRoleByRoleId(Integer roleId);

    void delUserRoleByUserId(Integer userId);


    List<RoleVo> addUserRole(TbUser user, List<RoleDto> roleDtoList);

    List<RoleVo> updateUserRole(TbUser user, List<RoleDto> roleDtoList);


    List<Integer> getUserRoleIdList(Integer userId);

    List<RoleVo> getUserRole(Integer userId);
}
